package cn.edu.huanu.service.impl;

import cn.edu.huanu.dao.BannerDao;
import cn.edu.huanu.dao.BookDao;
import cn.edu.huanu.dao.CategoryDao;
import cn.edu.huanu.dao.impl.BannerDaoImpl;
import cn.edu.huanu.dao.impl.BookDaoImpl;
import cn.edu.huanu.dao.impl.CategoryDaoImpl;
import cn.edu.huanu.exception.BusinessException;
import cn.edu.huanu.pojo.Banner;
import cn.edu.huanu.pojo.Book;
import cn.edu.huanu.pojo.Category;
import cn.edu.huanu.service.IndexService;
import cn.edu.huanu.utils.R;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author hb
 * @date 2025-11-06 15:37:20
 */
public   class IndexServiceImpl implements IndexService {

    private BannerDao bannerDao=new BannerDaoImpl();

    private CategoryDao categoryDao=new CategoryDaoImpl();

    private BookDao bookDao=new BookDaoImpl();

    public R loadIndexBooks()throws BusinessException{
        List<Book> newBooks = bookDao.queryBookByPageOrderByPubDate(0, 4);
        R r=new R();
        //使用Map结构封装不同类型的图书数据：最新图书，推荐图书，人气图书
        Map<String ,List<Book>> maps=new HashMap<>();
        maps.put("newBooks",newBooks);

        r.success().setData(maps);
        return r;
    }


    @Override
    public R loadBanner() throws BusinessException {
        List<Banner> lists = bannerDao.queryOnlineBanners();
        R r=new R();
        r.success().setData(lists);
        return r ;
    }

    /**
     *
     * @param parentId
     * @return
     * @throws BusinessException
     * @author 真实姓名  学号
     */
    @Override
    public R loadParentCateogry(Integer parentId) throws BusinessException {
        R r=new R();
        try {
            List<Category> categories = categoryDao.queryCategoryByParentId(parentId);
            r.success().setData(categories);
        }catch(Exception e){
            e.printStackTrace();
            r.error().setMessage("服务端繁忙!");
        }

        return r;
    }


}
